package com.hd123.rumba.gwt.widget2.client.form;

import java.util.List;

import com.hd123.rumba.gwt.util.client.MessageRecord;

/**
 * 标记控件可以被验证，普通的字段控件和容器控件均可实现此接口，从而实现递归的验证
 * 
 * @author LiQi
 * 
 */
public interface RValidatable {

  /**
   * 清除所有验证结果信息。
   */
  public void clearValidResults();

  /**
   * 取得当前是否验证通过。
   * 
   * @return
   */
  public boolean isValid();

  /**
   * 验证非法时的提示信息
   * 
   * @return
   */
  public List<MessageRecord> getInvalidMessages();

  /**
   * 执行验证
   * 
   * @return 验证结果
   */
  public boolean validate();
}
